package cn.itcast.service;

import cn.itcast.entity.PageResult;
import cn.itcast.entity.QueryPageBean;
import cn.itcast.pojo.Menu;
import cn.itcast.pojo.Setmeal;
import cn.itcast.pojo.User;


import java.util.List;
import java.util.Set;

/**
 * @author FXB
 * @createTime 2021年11月15日 14:45:00
 */
public interface MenuService {

    /**
     * 查询所有菜单信息
     *
     * @return
     */
    List<Menu> findAll();


    /**
     * 分页查询菜单数据
     *
     * @param currentPage
     * @param pageSize
     * @param queryString
     * @return
     */
    PageResult pageQuery(Integer currentPage, Integer pageSize, String queryString);

    /**
     * 根据id查询体检套餐基本信息
     *
     * @param id
     * @return
     */
    Menu findById(Integer id);


    /**
     * 根据ID查询下面所有子菜单信息
     *
     * @return
     */
    List<Integer> findParentMenuIdById(Integer id);


    /**
     * 根据id删除菜单信息数据
     * @param menuList
     */
    Boolean deleteById(List<Integer> menuList);

    /**
     * 查询菜单关联的权限组数据
     *
     * @param id
     * @return
     */
    Integer[] selectPermissionsIds(Integer id);


    /**
     * 更新菜单数据
     *
     * @param menu
     */
    void edit(Menu menu);



    /**
     * 修改菜单权限表  menu_permission表
     * @param permissionIds
     */
    void updateMenuPermissions(List<Integer> permissionIds, Menu menu);


    /**
     * 新增菜单
     *  @param
     * @param
     * @param menu
     * @param permissionIds
     */
    void add(Menu menu, List<Integer> permissionIds);



    /**
     * 动态菜单
     * 根据用户名查询拥有菜单信息
     *
     * @return
     */
    Set<Menu> findMenuByUsername(String username);


}
